# #输入数字n,输出n天以前的日期
# import datetime
# def func1(n):
#     new_day = (datetime.datetime.now() - datetime.timedelta(n)).strftime('%Y-%m-%d')
#     print(new_day)
# func1(40)
#
# #输出指定文件夹有哪些文件或文件夹
# def func_ls(src):
#     filelist = os.listdir(src)
#     for i in filelist:
#         print(i, end=' ')
#     print()
# func_ls("F:\pythonProject\pythonProject2")
#
# # 列表去重并排序
# lst = [1, 5, 7, 3, 2, 7, 9, 1, 5]
# print(sorted(set(lst)))
#
# # 在函数内部修改局部变量 global关键字
# a = 0
# def func():
#     global a
#     a = 7
#     print(a)
# func()
# print(a)
#
# # 通过模块的导入实现跨模块共享全局变量
#
# # 基本数据类型 ：不可变数据类型:number，float，string,tuple，可变数据类型：list,dict,set
#
# #7
# import random
# #print(random.randint(1,10))
# #print(random.uniform(1,10))
# #print(random.uniform(0,1))
#
# #pep8,代码书写规范
# #1、使用空格来表示缩进而不要用制表符Tab
# #2、和语法相关的每一层缩进都用4个空格来表示。
# #3、每行的字符数不要超过79个字符
# #4、类中私有的实例属性，应该以两个下划线开头
# #5、类和异常的命名，应该每个单词首字母大写
#
# # 给定一个字符串，找出子一个重复的字符串
#
# str1 = "czxfdhaeewrgdfddddd"
# lst = list()
# for i in str1:
#     if i not in lst:
#         lst.append(i)
#     else:
#         print(i)
#         break
#
# #深拷贝与浅拷贝：深拷贝与拷贝一般只会出现在容器嵌套使用的情况下
# #而且可变数据类型，不可变数据类型就没有深浅拷贝之分
# # 浅拷贝就是只拷贝了第一层的数据地址，就相当于为内部的可变数据类型地址创建了一个新的引用
# #当你改变数据的值时，源数据也会改变，深拷贝就是里里外外全部复制了一遍，递归拷贝了所有层
# # 需要调用copy.deepcopy函数进行
#
# #内存机制
# # 引用计数为主，分代回收和标记清除为辅
#
#
# # 冒泡排序
# def Bubble_sort(li):
#     for i in range(len(li)):
#         flag = 1
#         for j in range(len(li)-1-i):
#             if li[j] > li[j+1]:
#                 li[j],li[j+1] = li[j+1],li[j]
#                 flag = 0
#         #print(li)
#         if flag == 1:
#             break
#
# li = [1,5,3,6,8,4,2]
# Bubble_sort(li)
# print(li)



def Quick_sort(li):
    if len(li) > 1:
        mod = li[0]
        left_li = [i for i in li[1:] if i < mod]
        right_li = [i for i in li[1:] if i > mod]
        print(li)
        return Quick_sort(left_li)+ [mod] + Quick_sort(right_li)
    else:
        return li
Quick_sort([2,6,3,9,5,1,7])
